/*
 *    GPCS4
 *    
 *    This file implements:
 *    module: libSceSysmodule
 *        library: libSceSysmodule
 *    
 */

#pragma once

#include "sce_module_common.h"


extern const SCE_EXPORT_MODULE g_ExpModuleSceSysmodule;


// Note:
// The codebase is generated using GenerateCode.py
// You may need to modify the code manually to fit development needs

//

/* module ID definitions */
#define SCE_SYSMODULE_INVALID					0x0000
#define SCE_SYSMODULE_FIBER						0x0006
#define SCE_SYSMODULE_ULT						0x0007
#define SCE_SYSMODULE_NGS2						0x000b
#define SCE_SYSMODULE_XML						0x0017
#define SCE_SYSMODULE_NP_UTILITY				0x0019
#define SCE_SYSMODULE_VOICE						0x001a
#define SCE_SYSMODULE_VOICEQOS					0x001b
#define SCE_SYSMODULE_NP_MATCHING2				0x001c
#define SCE_SYSMODULE_NP_SCORE_RANKING			0x001e
#define SCE_SYSMODULE_RUDP						0x0021
#define SCE_SYSMODULE_NP_TUS					0x002c
#define SCE_SYSMODULE_FACE						0x0038
#define SCE_SYSMODULE_SMART						0x0039
#define SCE_SYSMODULE_GAME_LIVE_STREAMING		0x0081
#define SCE_SYSMODULE_COMPANION_UTIL			0x0082
#define SCE_SYSMODULE_PLAYGO					0x0083
#define SCE_SYSMODULE_FONT						0x0084
#define SCE_SYSMODULE_VIDEO_RECORDING			0x0085
#define SCE_SYSMODULE_S3DCONVERSION				0x0086
#define SCE_SYSMODULE_AUDIODEC					0x0088
#define SCE_SYSMODULE_JPEG_DEC					0x008a
#define SCE_SYSMODULE_JPEG_ENC					0x008b
#define SCE_SYSMODULE_PNG_DEC					0x008c
#define SCE_SYSMODULE_PNG_ENC					0x008d
#define SCE_SYSMODULE_VIDEODEC					0x008e
#define SCE_SYSMODULE_MOVE						0x008f
#define SCE_SYSMODULE_PAD_TRACKER				0x0091
#define SCE_SYSMODULE_DEPTH						0x0092
#define SCE_SYSMODULE_HAND						0x0093
#define SCE_SYSMODULE_LIBIME					0x0095
#define SCE_SYSMODULE_IME_DIALOG				0x0096
#define SCE_SYSMODULE_NP_PARTY					0x0097
#define SCE_SYSMODULE_FONT_FT					0x0098
#define SCE_SYSMODULE_FREETYPE_OT				0x0099
#define SCE_SYSMODULE_FREETYPE_OL				0x009a
#define SCE_SYSMODULE_FREETYPE_OPT_OL			0x009b
#define SCE_SYSMODULE_SCREEN_SHOT				0x009c
#define SCE_SYSMODULE_NP_AUTH					0x009d
#define SCE_SYSMODULE_SULPHA					0x009f
#define SCE_SYSMODULE_SAVE_DATA_DIALOG			0x00a0
#define SCE_SYSMODULE_INVITATION_DIALOG			0x00a2
#define SCE_SYSMODULE_DEBUG_KEYBOARD			0x00a3
#define SCE_SYSMODULE_MESSAGE_DIALOG			0x00a4
#define SCE_SYSMODULE_AV_PLAYER					0x00a5
#define SCE_SYSMODULE_CONTENT_EXPORT			0x00a6
#define SCE_SYSMODULE_AUDIO_3D					0x00a7
#define SCE_SYSMODULE_NP_COMMERCE				0x00a8
#define SCE_SYSMODULE_MOUSE						0x00a9
#define SCE_SYSMODULE_COMPANION_HTTPD			0x00aa
#define SCE_SYSMODULE_WEB_BROWSER_DIALOG		0x00ab
#define SCE_SYSMODULE_ERROR_DIALOG				0x00ac
#define SCE_SYSMODULE_NP_TROPHY					0x00ad
#define SCE_SYSMODULE_RESERVED30				0x00ae
#define SCE_SYSMODULE_RESERVED31				0x00af
#define SCE_SYSMODULE_NP_SNS_FACEBOOK			0x00b0
#define SCE_SYSMODULE_MOVE_TRACKER				0x00b1
#define SCE_SYSMODULE_NP_PROFILE_DIALOG			0x00b2
#define SCE_SYSMODULE_NP_FRIEND_LIST_DIALOG		0x00b3
#define SCE_SYSMODULE_APP_CONTENT				0x00b4
#define SCE_SYSMODULE_NP_SIGNALING				0x00b5
#define SCE_SYSMODULE_REMOTE_PLAY				0x00b6
#define SCE_SYSMODULE_USBD						0x00b7
#define SCE_SYSMODULE_GAME_CUSTOM_DATA_DIALOG	0x00b8
#define SCE_SYSMODULE_RESERVED0					0x00b9
#define SCE_SYSMODULE_RESERVED1					0x00ba
#define SCE_SYSMODULE_RESERVED2					0x00bb
#define SCE_SYSMODULE_M4AAC_ENC					0x00bc
#define SCE_SYSMODULE_AUDIODEC_CPU				0x00bd
#define SCE_SYSMODULE_RESERVED32				0x00be
#define SCE_SYSMODULE_RESERVED33				0x00c0
#define SCE_SYSMODULE_RESERVED3					0x00c1
#define SCE_SYSMODULE_RESERVED4					0x00c2
#define SCE_SYSMODULE_RESERVED5					0x00c3
#define SCE_SYSMODULE_RESERVED6					0x00c4
#define SCE_SYSMODULE_ZLIB						0x00c5
#define SCE_SYSMODULE_RESERVED8					0x00c6
#define SCE_SYSMODULE_CONTENT_SEARCH			0x00c7
#define SCE_SYSMODULE_RESERVED9					0x00c8
#define SCE_SYSMODULE_RESERVED34				0x00c9
#define SCE_SYSMODULE_DECI4H					0x00ca
#define SCE_SYSMODULE_HEAD_TRACKER				0x00cb
#define SCE_SYSMODULE_RESERVED11				0x00cc
#define SCE_SYSMODULE_RESERVED12				0x00cd
#define SCE_SYSMODULE_SYSTEM_GESTURE			0x00ce
#define SCE_SYSMODULE_VIDEODEC2					0x00cf
#define SCE_SYSMODULE_RESERVED14				0x00d0
#define SCE_SYSMODULE_AT9_ENC					0x00d1
#define SCE_SYSMODULE_CONVERT_KEYCODE			0x00d2
#define SCE_SYSMODULE_SHARE_PLAY				0x00d3
#define SCE_SYSMODULE_HMD						0x00d4
#define SCE_SYSMODULE_RESERVED18				0x00d5
#define SCE_SYSMODULE_RESERVED16				0x00d6
#define SCE_SYSMODULE_RESERVED17				0x00d7
#define SCE_SYSMODULE_FACE_TRACKER				0x00d8
#define SCE_SYSMODULE_HAND_TRACKER				0x00d9
#define SCE_SYSMODULE_RESERVED19				0x00da
#define SCE_SYSMODULE_RESERVED20				0x00dc
#define SCE_SYSMODULE_RESERVED21				0x00dd
#define SCE_SYSMODULE_RESERVED22				0x00de
#define SCE_SYSMODULE_RESERVED23				0x00df
#define SCE_SYSMODULE_RESERVED24				0x00e0
#define SCE_SYSMODULE_AUDIODEC_CPU_HEVAG		0x00e1
#define SCE_SYSMODULE_LOGIN_DIALOG				0x00e2
#define SCE_SYSMODULE_LOGIN_SERVICE				0x00e3
#define SCE_SYSMODULE_SIGNIN_DIALOG				0x00e4
#define SCE_SYSMODULE_RESERVED35				0x00e5
#define SCE_SYSMODULE_RESERVED25				0x00e6
#define SCE_SYSMODULE_JSON2						0x00e7
#define SCE_SYSMODULE_AUDIO_LATENCY_ESTIMATION	0x00e8
#define SCE_SYSMODULE_RESERVED26				0x00e9
#define SCE_SYSMODULE_RESERVED27				0x00ea
#define SCE_SYSMODULE_HMD_SETUP_DIALOG			0x00eb
#define SCE_SYSMODULE_RESERVED28				0x00ec
#define SCE_SYSMODULE_VR_TRACKER				0x00ed
#define SCE_SYSMODULE_CONTENT_DELETE			0x00ee
#define SCE_SYSMODULE_IME_BACKEND				0x00ef
#define SCE_SYSMODULE_NET_CTL_AP_DIALOG			0x00f0
#define SCE_SYSMODULE_PLAYGO_DIALOG				0x00f1
#define SCE_SYSMODULE_SOCIAL_SCREEN				0x00f2
#define SCE_SYSMODULE_EDIT_MP4					0x00f3
#define SCE_SYSMODULE_RESERVED37				0x00f5
#define SCE_SYSMODULE_TEXT_TO_SPEECH			0x00f6
#define SCE_SYSMODULE_RESERVED38				0x00f8
#define SCE_SYSMODULE_RESERVED39				0x00f9
#define SCE_SYSMODULE_RESERVED40				0x00fa
#define SCE_SYSMODULE_BLUETOOTH_HID				0x00fb
#define SCE_SYSMODULE_RESERVED41				0x00fc
#define SCE_SYSMODULE_VR_SERVICE_DIALOG			0x00fd
#define SCE_SYSMODULE_JOB_MANAGER				0x00fe
#define SCE_SYSMODULE_RESERVED42				0x00ff
#define SCE_SYSMODULE_SOCIAL_SCREEN_DIALOG		0x0100
#define SCE_SYSMODULE_RESERVED43				0x0101
#define SCE_SYSMODULE_NP_TOOLKIT2				0x0102
#define SCE_SYSMODULE_RESERVED44				0x0103
#define SCE_SYSMODULE_RESERVED45				0x0104
#define SCE_SYSMODULE_RESERVED46				0x00f7

// error codes
#define SCE_SYSMODULE_ERROR_INVALID_VALUE		-2141581312	/* 0x805A1000 */
#define SCE_SYSMODULE_ERROR_UNLOADED			-2141581311	/* 0x805A1001 */
#define SCE_SYSMODULE_ERROR_FATAL				-2141581057	/* 0x805A10FF */
#define SCE_SYSMODULE_LOADED					SCE_OK


//////////////////////////////////////////////////////////////////////////
// library: libSceSysmodule
//////////////////////////////////////////////////////////////////////////

int PS4API sceSysmoduleIsLoaded(uint16_t id);


int PS4API sceSysmoduleLoadModule(uint16_t id);


int PS4API sceSysmoduleUnloadModule(uint16_t id);


int PS4API sceSysmoduleLoadModuleInternalWithArg(void);

